package com.gitee.wsl.struct.grammar.node.expr

import com.gitee.wsl.struct.grammar.node.expr.closure.IClosureScope
import com.gitee.wsl.struct.grammar.node.expr.semantic.ISemanticRecorder

/**
 * 【语义类型】通用语义接口
 *
 * @author bajdcc
 */
interface ICommon {

    /**
     * 语义分析
     *
     * @param recorder 错误记录器
     */
    fun analysis(recorder: ISemanticRecorder)

    /**
     * 输出
     *
     * @param prefix 前缀空白
     * @return 结点内容
     */
    fun print(prefix: StringBuilder): String

    /**
     * 求函数闭包
     *
     * @param scope 闭包操作接口
     */
    fun addClosure(scope: IClosureScope)
}